-
Notifications
You must be signed in to change notification settings - Fork 0
Add COSMIC desktop 1.9.0 #3476
Open
Paul Menzel (pmenzel)
wants to merge
36
commits into
master
Choose a base branch
from
add-cosmic-de-1.9.0
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add COSMIC desktop 1.9.0 #3476
+1,059
−87
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
libinput uses mtdev to support multitouch protocol A devices. The
upstream site moved from bitmath.org to bitmath.se.
Built with scripts/bee-mxqsub in a chain with libinput and seatd (MXQ
job 60579546, private repository):
=== [1/6] mtdev.be0: 2026-10-01 17:45:08 beesh exited with 0
[BEE] pkg-file: .../packages/mtdev-1.1.7-0.x86_64.bee.tar.bz2
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
libinput 1.32.0 requires libwacom 0.27 or later for tablet identification. The build system is now meson. The soname changes from libwacom.so.2 to libwacom.so.9. The only binary linking the old library is /usr/lib/gnome-settings-daemon-3.0/libgsdwacom.so, which needs a rebuild. The tarball is an upstream release asset, mirrored to beehive. Not built yet. Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The input library cosmic-comp, cosmic-settings and other parts of the
COSMIC desktop use. The Lua plugins are disabled, because they need Lua
5.4, and only 5.3 is installed.
Built with scripts/bee-mxqsub against mtdev (MXQ job 60579546), but
still with -Dlibwacom=false, before libwacom was updated:
=== [2/6] libinput.be0: 2026-10-01 17:45:28 beesh exited with 0
[BEE] pkg-file: .../packages/libinput-1.32.0-0.x86_64.bee.tar.bz2
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
cosmic-comp gets DRM and input devices from libseat. libseat talks to
systemd-logind here, so the seatd server is not built.
Built with scripts/bee-mxqsub (MXQ job 60579546):
=== [3/6] seatd.be0: 2026-10-01 17:45:32 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
xdg-desktop-portal-cosmic needs PipeWire for screen casting, and
cosmic-settings-daemon links it.
PulseAudio stays the sound server. The systemd user units, including
pipewire-pulse.socket, are installed but not enabled, and the ALSA and
JACK replacement libraries are not built, so nothing is rerouted.
The source tree has an autogen.sh, which only wraps meson, but bee
prefers it and passes autotools options meson does not understand:
meson: error: unrecognized arguments: --datarootdir=/usr/share --docdir=/usr/share/doc/pipewire --exec-prefix=/usr
so BEE_BUILDTYPE=meson is set.
pw-cat (and pw-play, pw-record) does not compile against the installed
libsndfile 1.0.24 from 2011, and meson only checks for 1.0.20:
../source/src/tools/pw-cat.c:219:19: error: 'SF_FORMAT_MPEG_LAYER_I' undeclared here (not in a function)
so pw-cat and the sndfile support of filter-chain are disabled.
Built with scripts/bee-mxqsub (MXQ job 60579549):
=== [1/3] pipewire.be0: 2026-10-01 17:49:14 beesh exited with 0
The package also installs /etc/security/limits.d/25-pw-rlimits.conf,
which only grants limits to a group pipewire, and the GStreamer plugin
libgstpipewire.so.
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The session manager PipeWire needs to route streams, for example a
screen cast of xdg-desktop-portal-cosmic. Like PipeWire's, the systemd
user unit is installed, but not enabled.
The system Lua 5.3 is used, as otherwise meson downloads Lua through
subprojects/lua.wrap.
The top-level Makefile only wraps meson, but bee prefers it. The meson
options then end up as arguments of bee_dummy(), which trips over them,
and the configure step is skipped without an error:
/bin/beesh: line 509: [: syntax error: `-Dsystem-lua=true' unexpected
[BEE] action 'bee_configure' is not defined: skipping..
so BEE_BUILDTYPE=meson is set.
Built with scripts/bee-mxqsub against PipeWire 1.6.9 (MXQ job
60579550):
=== [1/2] wireplumber.be0: 2026-10-01 17:53:23 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Runs X11 applications in Wayland sessions such as COSMIC.
Xvfb is not built, as xorg-server.be0 ships it already, and the libei
support is disabled, as libei is not packaged.
Xwayland installs /usr/lib/xorg/protocol.txt and the manual page
Xserver(1), which xorg-server owns already. The protocol table of
xorg-server is a superset (it adds the DMX requests), so both files are
removed from the image.
Built with scripts/bee-mxqsub (MXQ job 60579551):
=== [1/1] xwayland.be0: 2026-10-01 17:55:48 beesh exited with 0
removed '.../image/usr/lib/xorg/protocol.txt'
removed '.../image/usr/share/man/man1/Xserver.1'
and the package contains:
/usr/lib/pkgconfig/xwayland.pc
/usr/share/applications/org.freedesktop.Xwayland.desktop
/usr/share/man/man1/Xwayland.1
/usr/bin/Xwayland
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
A command runner. The COSMIC desktop components describe their build
and installation in justfiles, so their recipes call
`just rootdir=${D} install` instead of repeating upstream's install
steps.
Like for the COSMIC components, the crates come from a second tarball
with the output of `cargo vendor --locked --versioned-dirs`, so the
build needs no network access.
Built with scripts/bee-mxqsub before the upload to beehive, with both
tarballs placed in the build root beforehand (MXQ job 60579552). The
uploaded files have the same md5 sums.
$ grep exited just.log
=== [1/1] just.be0: 2026-10-01 17:58:15 beesh exited with 0
The package contains:
/usr/bin/just
/usr/share/man/man1/just.1
/usr/share/bash-completion/completions/just
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The applets of the COSMIC panel: app list, audio, battery, Bluetooth,
input sources, network, notifications, power, status area, tiling,
time, workspaces and others. They are one binary, cosmic-applets, with
one symbolic link per applet.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579554); the package has 104 entries:
=== [1/5] cosmic-applets.be0: 2026-10-01 18:01:54 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The panel and dock of the COSMIC desktop.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579554); the package has 46 entries:
=== [2/5] cosmic-panel.be0: 2026-10-01 18:03:41 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Draws the desktop background of the COSMIC desktop.
It is built without the default feature avif, as AVIF images would need
dav1d, which is not packaged. The default configuration names
/usr/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg from
cosmic-wallpapers, which is not packaged either.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579554); the package has 2 entries:
=== [3/5] cosmic-bg.be0: 2026-10-01 18:04:58 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
On-screen displays and the polkit agent of the COSMIC desktop.
The path of polkit-agent-helper-1 is compiled in, and is
/usr/lib/polkit-1/polkit-agent-helper-1 here instead of upstream's
default /usr/libexec/polkit-agent-helper-1.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579554); the package has 1 entries:
=== [4/5] cosmic-osd.be0: 2026-10-01 18:06:26 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Takes screenshots in the COSMIC desktop, through
xdg-desktop-portal-cosmic.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579554); the package has 9 entries:
=== [5/5] cosmic-screenshot.be0: 2026-10-01 18:07:44 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The Wayland compositor of the COSMIC desktop, based on Smithay. It gets
DRM and input devices through libseat and libinput, and starts Xwayland
for X11 clients.
Only the install target of the Makefile is used. Its
install-bare-session target would also install cosmic.desktop and
cosmic-session.target, which cosmic-session ships.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579553); the package has 3 entries:
=== [1/6] cosmic-comp.be0: 2026-10-01 18:06:52 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Starts and supervises the components of a COSMIC session. It installs
/usr/share/wayland-sessions/cosmic.desktop, which runs start-cosmic.
LightDM is configured with sessions-directory=/usr/share/xsessions, so
it does not offer the session yet.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579553); the package has 6 entries:
=== [2/6] cosmic-session.be0: 2026-10-01 18:07:43 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Applies the COSMIC settings, and handles brightness, volume and media
keys. It links PipeWire.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579553); the package has 3 entries:
=== [3/6] cosmic-settings-daemon.be0: 2026-10-01 18:09:23 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Configures the displays of the COSMIC desktop, and is used by
cosmic-settings and cosmic-osd.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579553); the package has 1 entries:
=== [4/6] cosmic-randr.be0: 2026-10-01 18:09:49 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The icon theme Cosmic of the COSMIC desktop. Nothing is compiled, the
recipe only runs upstream's `just install`.
Built with scripts/bee-mxqsub against just 1.58.0 (MXQ job 60579553);
the package has 673 files:
=== [5/6] cosmic-icons.be0: 2026-10-01 18:09:56 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Blanks the screens and locks the COSMIC session when idle.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579553); the package has 1 entries:
=== [6/6] cosmic-idle.be0: 2026-10-01 18:10:36 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The settings application of the COSMIC desktop.
It is built with the default features except avif, as AVIF images would
need dav1d, which is not packaged.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579555); the package has 263 entries:
=== [1/5] cosmic-settings.be0: 2026-10-01 18:02:40 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The XDG desktop portal backend of the COSMIC desktop, for example for
screenshots and screen casting with PipeWire.
It is a backend for xdg-desktop-portal, which gets a recipe of its own.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579555); the package has 8 entries:
=== [2/5] xdg-desktop-portal-cosmic.be0: 2026-10-01 18:05:18 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The notification daemon of the COSMIC desktop.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579555); the package has 1 entries:
=== [3/5] cosmic-notifications.be0: 2026-10-01 18:07:33 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The workspace and window overview of the COSMIC desktop. The upstream
repository is called cosmic-workspaces-epoch, the binary and the package
cosmic-workspaces.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579555); the package has 3 entries:
=== [4/5] cosmic-workspaces.be0: 2026-10-01 18:09:20 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The launcher service cosmic-launcher searches with, and its plugins
(calculator, desktop entries, files, terminal, web and others). Each
plugin is a relative symbolic link to /usr/bin/pop-launcher below
/usr/lib/pop-launcher/plugins.
The upstream repository is github.com/pop-os/launcher.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579555); the package has 34 entries:
=== [5/5] pop-launcher.be0: 2026-10-01 18:11:29 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The file manager of the COSMIC desktop, with its panel applet and
thumbnailer.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 13 entries:
=== [1/6] cosmic-files.be0: 2026-10-01 18:03:48 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The terminal emulator of the COSMIC desktop.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 10 entries:
=== [2/6] cosmic-term.be0: 2026-10-01 18:06:10 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The text editor of the COSMIC desktop.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 10 entries:
=== [3/6] cosmic-edit.be0: 2026-10-01 18:08:38 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The media player of the COSMIC desktop, based on GStreamer, with a
thumbnailer for videos.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 11 entries:
=== [4/6] cosmic-player.be0: 2026-10-01 18:10:25 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The application library of the COSMIC desktop.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 4 entries:
=== [5/6] cosmic-app-library.be0: 2026-10-01 18:12:12 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The application launcher of the COSMIC desktop, a frontend to
pop-launcher.
Built from the tag epoch-1.9.0 with rustc 1.97.0. The crates come from a
second tarball with the output of `cargo vendor --locked
--versioned-dirs`, so cargo runs with --frozen and needs no network
access.
Built with scripts/bee-mxqsub against the packages of this branch (MXQ
job 60579556); the package has 4 entries:
=== [6/6] cosmic-launcher.be0: 2026-10-01 18:13:58 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The D-Bus frontend of the XDG desktop portals, which forwards requests,
for example for screenshots or screen casts, to the backend of the
desktop, such as xdg-desktop-portal-cosmic.
The bundled subprojects libglnx and gvdb are sources. PipeWire 1.6.9 is
found, so the screen cast portal is built. Geoclue and Flatpak are not
packaged, so the location portal and the Flatpak interfaces are not
built. The documentation and the manual pages are disabled, as they
need Sphinx and rst2man.
Built with scripts/bee-mxqsub against PipeWire 1.6.9, with the tarball
placed in the build root before the upload to beehive (MXQ job
60579558):
=== [1/2] xdg-desktop-portal.be0: 2026-10-01 18:30:32 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
The eleven wallpapers of the COSMIC desktop, installed to
/usr/share/backgrounds/cosmic. The default configuration of cosmic-bg
names orion_nebula_nasa_heic0601a.jpg from it.
Upstream stores the images with Git LFS. GitHub's archive of the tag
contains the images themselves, not the LFS pointer files:
$ file orion_nebula_nasa_heic0601a.jpg
JPEG image data, progressive, precision 8, 3840x2160, components 3
The licenses of the images (CC BY 4.0, ESA/Hubble, NASA terms) are
listed per file in the upstream README.md.
Built with scripts/bee-mxqsub, with the tarball placed in the build
root before the upload to beehive (MXQ job 60579559):
=== [1/1] cosmic-wallpapers.be0: 2026-10-01 18:31:46 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
dav1d is the AV1 decoder of VideoLAN. cosmic-settings and cosmic-bg need
it to display AVIF wallpapers: their `avif` feature enables the image
crate's `avif-native`, whose dav1d-sys 0.8.3 probes for it with
pkg-config:
[package.metadata.system-deps.dav1d]
name = "dav1d"
version = "1.3.0"
bee passes no `--buildtype`, so meson would compile it with `-O0 -g`,
and the `trim_dsp` default (`if-release`) only drops the redundant C DSP
functions in release builds, so build with `--buildtype=release`. The
x86 assembly is built with nasm 2.14 from /usr, the minimum dav1d
accepts:
[97/134] /usr/bin/nasm -f elf64 [...] ../source/src/x86/itx16_sse.asm [...]
checkasm is a wrap subproject, which `--wrap-mode=nofallback` skips, and
it is optional (`required: false`), so the asm self-tests are not built.
-rw-r--r-- Apmenzel/Apmenzel 205 2026-10-01 18:40 /usr/lib/pkgconfig/dav1d.pc
lrwxrwxrwx Apmenzel/Apmenzel 0 2026-10-01 18:41 /usr/lib/libdav1d.so.7 -> libdav1d.so.7.0.0
-rwxr-xr-x Apmenzel/Apmenzel 80944 2026-10-01 18:41 /usr/bin/dav1d
The tarball still has to be mirrored to beehive.
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
With dav1d packaged, build cosmic-bg with its default features, which are
only `avif` (`image/avif-native`). The binary now links the decoder:
$ readelf -d usr/bin/cosmic-bg | grep dav1d
0x0000000000000001 (NEEDED) Shared library: [libdav1d.so.7]
Built on MXQ (job 60579563) after dav1d-1.5.4-0 in one overlay chain:
=== [2/3] cosmic-bg.be0: 2026-10-01 18:54:14 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
With dav1d packaged, build cosmic-settings with its default features
instead of listing them all except `avif`, so the wallpaper page can
show AVIF images. The binary now links the decoder:
$ readelf -d usr/bin/cosmic-settings | grep dav1d
0x0000000000000001 (NEEDED) Shared library: [libdav1d.so.7]
Built on MXQ (job 60579563) after dav1d-1.5.4-0 in one overlay chain:
=== [3/3] cosmic-settings.be0: 2026-10-01 18:57:00 beesh exited with 0
Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
I tested on maleficent (amdgpu): The first startup was quite slow, but afterward it worked. 20261013--cosmic-journalctl--user-b.txt Logging out and re-running, just the error below as printed on the terminal: |
Collaborator
|
Wow, our leap to Wayland? How many bytes get installed? |
Collaborator
We should fix the bee bug! |
Collaborator
Isn't the repository path the default for UID 0 ? |
Collaborator
Author
It is. Removed from the merge/pull request description. |
Collaborator
Author
Will do it later. |
Paul Menzel (pmenzel)
added a commit
that referenced
this pull request
Oct 14, 2026
…-26.2.4 Update LLVM to 23.1.3 and Mesa to 26.2.4, replace libclc with mesa-libclc AI disclaimer: This merge/pull request was mainly generated by claude-opus-5.5 and reviewed and tested by @pmenzel. Built with: scripts/bee-mxqsub -t 4h llvm.be0 clang.be0 compiler-rt.be0 lld.be0 spirv-llvm-translator.be0 mesa-libclc.be0 mesalib.be0 Install/update/remove with: sudo bee update \ llvm-23.1.3-0 clang-23.1.3-0 compiler-rt-23.1.3-0 lld-23.1.3-0 \ spirv-llvm-translator-23.1.2-0 mesa-libclc-22.1.8.3-0 mesalib-26.2.4-0 sudo bee remove libclc-22.1.8-0.x86_64 ## Test The two new scripts in `scripts/smoke-tests/` check the installed packages, or, with `--prefix`, package archives or image directories mounted read-only over `/usr` in a user namespace, so without installing and without root: scripts/smoke-tests/llvm-smoke-test scripts/smoke-tests/mesa-smoke-test P=/src/mariux/beeroot/packages TMPDIR=/dev/shm scripts/smoke-tests/llvm-smoke-test \ --prefix $P/llvm-23.1.3-0.x86_64.bee.tar.bz2 --prefix $P/clang-23.1.3-0.x86_64.bee.tar.bz2 \ --prefix $P/compiler-rt-23.1.3-0.x86_64.bee.tar.bz2 --prefix $P/lld-23.1.3-0.x86_64.bee.tar.bz2 \ --prefix $P/spirv-llvm-translator-23.1.2-0.x86_64.bee.tar.bz2 TMPDIR=/dev/shm scripts/smoke-tests/mesa-smoke-test \ --prefix $P/llvm-23.1.3-0.x86_64.bee.tar.bz2 --prefix $P/clang-23.1.3-0.x86_64.bee.tar.bz2 \ --prefix $P/spirv-llvm-translator-23.1.2-0.x86_64.bee.tar.bz2 \ --prefix $P/mesa-libclc-22.1.8.3-0.x86_64.bee.tar.bz2 --prefix $P/mesalib-26.2.4-0.x86_64.bee.tar.bz2 ### machdoch (Intel CometLake GT2), packages of this branch via `--prefix` Run before the OpenGL ES check went over all EGL devices, so its lines still say just `hardware`. OK clang 23.1.3, llvm-config 23.1.3, ld.lld 23.1.3, llvm-spirv (libLLVM) 23.1 OK runtime directory /usr/lib/clang/23/lib/linux holds 76 compiler-rt files OK C OK C++ with exceptions OK lld links and runs, .comment names LLD 23 OK ThinLTO with lld OK compiler-rt builtins (--rtlib=compiler-rt) OK ASan reports heap-buffer-overflow OK UBSan reports signed integer overflow OK TSan reports data race OK profiling and coverage: compiler-rt profile, llvm-profdata, llvm-cov OK OpenCL C to SPIR-V and back with llvm-spirv, spirv-val accepts it PASS (0 failed, 0 warned) OK 7 Mesa libraries resolve their shared libraries, using libLLVM.so.23.1, libLLVMSPIRVLib.so.23.1, libclang-cpp.so.23.1 OK mesa-libclc provides its SPIR-V libraries in /usr/share/mesa-clc OK OpenGL ES (software) draws a shaded triangle: llvmpipe (LLVM 23.1.3, 256 bits), OpenGL ES 3.2 Mesa 26.2.4 OK OpenGL ES (hardware) draws a shaded triangle: Mesa Intel(R) UHD Graphics (CML GT2), OpenGL ES 3.2 Mesa 26.2.4 OK GLX on Xvfb: llvmpipe (LLVM 23.1.3, 256 bits), 4.6 (Core Profile) Mesa 26.2.4 OK Vulkan libvulkan_intel.so: Intel(R) UHD Graphics (CML GT2), Intel open-source Mesa driver Mesa 26.2.4, Vulkan 1.4.354, device created OK Vulkan libvulkan_radeon.so: loads, drives no GPU of this host OK OpenCL Mesa Intel(R) UHD Graphics (CML GT2) (OpenCL 3.1) runs a kernel calling libclc builtins OK OpenCL llvmpipe (LLVM 23.1.3, 256 bits) (OpenCL 3.1) runs a kernel calling libclc builtins PASS (0 failed, 0 warned) So mesa-libclc 22.1.8.3, libclc 22 code built with clang 23, works. ### machdoch, installed master (LLVM 22.1.8, mesalib 26.2.2, libclc 22.1.8) For comparison, master fails both: no sanitizer links, as compiler-rt 22.1.8-0 is outside clang’s resource directory, and **OpenCL is broken on master**, as rusticl gets upstream libclc: FAIL no compiler-rt runtimes in clang's runtime directory (clang -print-runtime-dir: (runtime dir is not present)) FAIL ASan: clang failed: /usr/bin/ld: cannot find /usr/lib/clang/22/lib/x86_64-unknown-linux-gnu/libclang_rt.asan_static.a: No such file or directory WARN OpenCL: rusticl uses upstream libclc, not Mesa's fork (install mesa-libclc) FAIL OpenCL Mesa Intel(R) UHD Graphics (CML GT2) (OpenCL 3.1): build failed: Internal compilation error: nir_shader not fully linked FAIL OpenCL llvmpipe (LLVM 22.1.8, 256 bits) (OpenCL 3.1): build failed: Internal compilation error: nir_shader not fully linked ### maleficent (AMD Radeon Pro WX 5100 and Intel HD Graphics 630), installed Run by @pmenzel; this covers radeonsi and RADV, and OpenGL ES on both GPUs: OK 7 Mesa libraries resolve their shared libraries, using libLLVM.so.23.1, libLLVMSPIRVLib.so.23.1, libclang-cpp.so.23.1 OK mesa-libclc provides its SPIR-V libraries in /usr/share/mesa-clc OK OpenGL ES (hardware, /dev/dri/renderD129) draws a shaded triangle: Mesa Intel(R) HD Graphics 630 (KBL GT2), OpenGL ES 3.2 Mesa 26.2.4 OK OpenGL ES (hardware, /dev/dri/renderD128) draws a shaded triangle: AMD Radeon Pro WX 5100 Graphics (radeonsi, polaris10, ACO, DRM 3.64, 6.18.51.mx64.498), OpenGL ES 3.2 Mesa 26.2.4 OK OpenGL ES (software) draws a shaded triangle: llvmpipe (LLVM 23.1.3, 256 bits), OpenGL ES 3.2 Mesa 26.2.4 OK GLX on Xvfb: llvmpipe (LLVM 23.1.3, 256 bits), 4.6 (Core Profile) Mesa 26.2.4 OK Vulkan libvulkan_intel.so: Intel(R) HD Graphics 630 (KBL GT2), Intel open-source Mesa driver Mesa 26.2.4, Vulkan 1.4.354, device created OK Vulkan libvulkan_radeon.so: AMD Radeon Pro WX 5100 Graphics (RADV POLARIS10), radv Mesa 26.2.4, Vulkan 1.4.354, device created OK OpenCL AMD Radeon Pro WX 5100 Graphics (radeonsi, polaris10, ACO, DRM 3.64, 6.18.51.mx64.498) (OpenCL 3.1) runs a kernel calling libclc builtins OK OpenCL Mesa Intel(R) HD Graphics 630 (KBL GT2) (OpenCL 3.1) runs a kernel calling libclc builtins OK OpenCL llvmpipe (LLVM 23.1.3, 256 bits) (OpenCL 3.1) runs a kernel calling libclc builtins PASS (0 failed, 0 warned) ### sigusr2 (NVIDIA proprietary driver), installed Updated by @pmenzel: Xfce, COSMIC (from #3476) and Firefox still work. With NVIDIA’s driver that exercises the toolchain-built userland, not Mesa’s GPU drivers. ### overcommit - ASan/TSan do not run on hosts with `vm.overcommit_memory=2`, the MXQ nodes like hotelcalifornia and the servers; `llvm-smoke-test` only links them there and warns. ## Notes - Unrelated and already broken before this PR: `/usr/local/qt6/bin/qdoc` still needs `libclang.so.18.1` and `libLLVM.so.18.1`, and needs a qt6 rebuild.
Sign in
to join this conversation on GitHub.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
AI disclaimer: This merge/pull request was generated by claude-opus-5.5 and reviewed by Paul Menzel (@pmenzel).
Tested on maleficent (amdgpu), theinternet (Nvidia) and sigusr2 (Nvidia). Sound, microphone and video all work.
Add the COSMIC desktop environment (epoch 1.9.0) with one recipe per component, plus the libraries and tools it needs.
The crates of every Rust component come from a second tarball on beehive with the output of
cargo vendor --locked --versioned-dirs, so cargo runs with--frozenand the builds need no network access. The recipes use upstream’s ownjust build-releaseandjust install(make installfor the Makefile-based components).Notes:
libwacom.so.2tolibwacom.so.9./usr/lib/gnome-settings-daemon-3.0/libgsdwacom.solinks the old one.sessions-directory=/usr/share/xsessions, so it does not offer/usr/share/wayland-sessions/cosmic.desktop. That, and enabling the user units, belongs into mxtools, and is not part of this pull request; see Test without changing LightDM below.Build
All 33 bee-files were built in one chain with
scripts/bee-mxqsub(log/scratch/tmp/cosmic-build-20261013-1429.log, all exit 0):Install
Check
bee installexits 0 even when it refuses a package, so check that all are installed:Test without changing LightDM
LightDM does not offer the session, so start COSMIC nested in a running X session (for example Xfce on a desktop host), from a terminal there:
DISPLAYset, cosmic-comp uses its X11 backend and opens a window (1280×800) with the whole session in it. If that fails, it falls back to its winit backend. Stop it with Ctrl+C in the terminal.XDG_RUNTIME_DIRanddbus-run-sessionkeep the test away from the running session. Otherwise cosmic-session would runsystemctl --user set-environment XDG_SESSION_TYPE=waylandand startcosmic-session.target, which bindsgraphical-session.targetandxdg-desktop-autostart.target, in the user manager of the X session. With the private directory these calls fail, and cosmic-session only logs that.journalctl --user -f.~/.config/cosmic; remove that directory to start over.Test from a text console
Log in on a text console, for example Ctrl+Alt+F2, check that the login has a logind session on
seat0, and start COSMIC:user@<uid>.service, like SSH and LightDM logins already do.nvidia-drmhas to be loaded withmodeset=1(append it to theinsmodline in nvidiactl). Fixed in merge/pull request nvidiactl: Enable nvidia-drm kernel modesetting on desktops mxtools#600.Test before installing
The packages can also be tried without installing them, by laying them over
/usrwith bubblewrap. This is what I (an LLM) did under Xvfb in an mxqi slot on hotelcalifornia:Result of that run:
orion_nebula_nasa_heic0601a.jpgfrom cosmic-wallpapers) is drawn.